package entity.Encomienda;

import javax.persistence.CascadeType;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.OneToOne;
import javax.persistence.Table;


import dto.Encomienda.DTO_Encomienda;
import dto.Encomienda.DTO_EncomiendaParticular;

@Entity
@Table(name="Encomienda")
@DiscriminatorValue(value="PA")
public class Entity_EncomiendaParticular extends Entity_Encomienda{
	private String nombreParticular;
	private String apellidoParticular;
	private String dniParticular;
	private String direccionDestino;
	private String codigoPostalDestino;
	private String localidadDestino;
	private String provinciaDestino;
	private String paisDestino;
	
	@OneToOne(mappedBy = "encomienda", cascade = CascadeType.ALL)
	private Entity_Manifiesto manifiesto;
	
	public Entity_EncomiendaParticular() {

	}

	public String getNombreParticular() {
		return nombreParticular;
	}
	public void setNombreParticular(String nombreParticular) {
		this.nombreParticular = nombreParticular;
	}
	public String getApellidoParticular() {
		return apellidoParticular;
	}
	public void setApellidoParticular(String apellidoParticular) {
		this.apellidoParticular = apellidoParticular;
	}
	public String getDniParticular() {
		return dniParticular;
	}
	public void setDniParticular(String dniParticular) {
		this.dniParticular = dniParticular;
	}
	public String getDireccionDestino() {
		return direccionDestino;
	}
	public void setDireccionDestino(String direccionDestino) {
		this.direccionDestino = direccionDestino;
	}
	public String getCodigoPostalDestino() {
		return codigoPostalDestino;
	}
	public void setCodigoPostalDestino(String codigoPostalDestino) {
		this.codigoPostalDestino = codigoPostalDestino;
	}
	public String getLocalidadDestino() {
		return localidadDestino;
	}
	public void setLocalidadDestino(String localidadDestino) {
		this.localidadDestino = localidadDestino;
	}
	public String getProvinciaDestino() {
		return provinciaDestino;
	}
	public void setProvinciaDestino(String provinciaDestino) {
		this.provinciaDestino = provinciaDestino;
	}
	public String getPaisDestino() {
		return paisDestino;
	}
	public void setPaisDestino(String paisDestino) {
		this.paisDestino = paisDestino;
	}
	public Entity_Manifiesto getManifiesto() {
		return manifiesto;
	}
	public void setManifiesto(Entity_Manifiesto manifiesto) {
		this.manifiesto = manifiesto;
	}

	@Override
	public DTO_Encomienda toDTO() {
		DTO_Encomienda e = new DTO_EncomiendaParticular();

		e.setId(this.getId());
		e.setIdSucursalOrigen(this.getSucursalOrigen().getId());
		e.setIdDestino(this.getDestino().getId());
		e.setIdSucursalActual(this.getSucursalActual().getId());
		e.setFechaRecepcion(this.getFechaRecepcion());
		e.setFechaMaxima(this.getFechaMaxima());
		e.setEstado(this.getEstado());
		e.setIdAseguradora(this.getAseguradora().getId());
		e.setLargo(this.getLargo());
		e.setAlto(this.getAlto());
		e.setAncho(this.getAncho());
		e.setPeso(this.getPeso());
		e.setVolumen(this.getVolumen());
		e.setTratamiento(this.getTratamiento());
		e.setApilable(this.isApilable());
		e.setCantApilable(this.getCantApilable());
		e.setRefrigerado(this.isRefrigerado());
		e.setCondicionTransporte(this.getCondicionTransporte());
		e.setIndicacionesManipulacion(this.getIndicacionesManipulacion());
		e.setFragilidad(this.getFragilidad());
		e.setTercerizado(this.isTercerizado());
		e.setKilometrosRecorridos(this.getKilometrosRecorridos());
		e.setFacturado(this.isFacturado());
		e.setValorEstimado(this.getValorEstimado());
		e.setDistanciaEstimadaKM(this.getDistanciaEstimadaKM());
		e.setIdFacturaCliente(this.getFactura().getId());
		
		((DTO_EncomiendaParticular) e).setNombreParticular(this.getNombreParticular());
		((DTO_EncomiendaParticular) e).setApellidoParticular(this.getApellidoParticular());
		((DTO_EncomiendaParticular) e).setDniParticular(this.getDniParticular());
		((DTO_EncomiendaParticular) e).setDireccionDestino(this.getDireccionDestino());
		((DTO_EncomiendaParticular) e).setCodigoPostalDestino(this.getCodigoPostalDestino());
		((DTO_EncomiendaParticular) e).setLocalidadDestino(this.getLocalidadDestino());
		((DTO_EncomiendaParticular) e).setProvinciaDestino(this.getProvinciaDestino());
		((DTO_EncomiendaParticular) e).setPaisDestino(this.getPaisDestino());
		((DTO_EncomiendaParticular) e).setManifiesto(this.getManifiesto().toDTO());
		


		return e;
	}

}
